﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ServiceModel;

    [ServiceContract(Namespace="http://www.onvif.org/ver10/recording/wsdl", ConfigurationName="RecordingPort"), GeneratedCode("System.ServiceModel", "3.0.0.0")]
    public interface RecordingPort
    {
        [return: MessageParameter(Name="RecordingToken")]
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/CreateRecording", ReplyAction="*"), XmlSerializerFormat, ServiceKnownType(typeof(FilterType))]
        string CreateRecording(RecordingConfiguration RecordingConfiguration);
        [return: MessageParameter(Name="JobToken")]
        [XmlSerializerFormat, OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/CreateRecordingJob", ReplyAction="*"), ServiceKnownType(typeof(FilterType))]
        string CreateRecordingJob(ref RecordingJobConfiguration JobConfiguration);
        [return: MessageParameter(Name="TrackToken")]
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/CreateTrack", ReplyAction="*"), ServiceKnownType(typeof(FilterType)), XmlSerializerFormat]
        string CreateTrack(string RecordingToken, TrackConfiguration TrackConfiguration);
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/DeleteRecording", ReplyAction="*"), XmlSerializerFormat, ServiceKnownType(typeof(FilterType))]
        void DeleteRecording(string RecordingToken);
        [ServiceKnownType(typeof(FilterType)), OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/DeleteRecordingJob", ReplyAction="*"), XmlSerializerFormat]
        void DeleteRecordingJob(string JobToken);
        [ServiceKnownType(typeof(FilterType)), OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/DeleteTrack", ReplyAction="*"), XmlSerializerFormat]
        void DeleteTrack(string RecordingToken, string TrackToken);
        [return: MessageParameter(Name="RecordingConfiguration")]
        [ServiceKnownType(typeof(FilterType)), XmlSerializerFormat, OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetRecordingConfiguration", ReplyAction="*")]
        RecordingConfiguration GetRecordingConfiguration(string RecordingToken);
        [return: MessageParameter(Name="JobConfiguration")]
        [XmlSerializerFormat, ServiceKnownType(typeof(FilterType)), OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetRecordingJobConfiguration", ReplyAction="*")]
        RecordingJobConfiguration GetRecordingJobConfiguration(string JobToken);
        [return: MessageParameter(Name="JobItem")]
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetRecordingJobs", ReplyAction="*"), XmlSerializerFormat, ServiceKnownType(typeof(FilterType))]
        GetRecordingJobsResponse GetRecordingJobs(GetRecordingJobsRequest request);
        [return: MessageParameter(Name="State")]
        [XmlSerializerFormat, ServiceKnownType(typeof(FilterType)), OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetRecordingJobState", ReplyAction="*")]
        RecordingJobStateInformation GetRecordingJobState(string JobToken);
        [return: MessageParameter(Name="RecordingItem")]
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetRecordings", ReplyAction="*"), XmlSerializerFormat, ServiceKnownType(typeof(FilterType))]
        GetRecordingsResponse GetRecordings(GetRecordingsRequest request);
        [return: MessageParameter(Name="Capabilities")]
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetServiceCapabilities", ReplyAction="*"), XmlSerializerFormat, ServiceKnownType(typeof(FilterType))]
        RecordingServiceCapabilities GetServiceCapabilities();
        [return: MessageParameter(Name="TrackConfiguration")]
        [OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/GetTrackConfiguration", ReplyAction="*"), XmlSerializerFormat, ServiceKnownType(typeof(FilterType))]
        TrackConfiguration GetTrackConfiguration(string RecordingToken, string TrackToken);
        [XmlSerializerFormat, OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/SetRecordingConfiguration", ReplyAction="*"), ServiceKnownType(typeof(FilterType))]
        void SetRecordingConfiguration(string RecordingToken, RecordingConfiguration RecordingConfiguration);
        [XmlSerializerFormat, ServiceKnownType(typeof(FilterType)), OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/SetRecordingJobConfiguration", ReplyAction="*")]
        void SetRecordingJobConfiguration(string JobToken, ref RecordingJobConfiguration JobConfiguration);
        [XmlSerializerFormat, OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/SetRecordingJobMode", ReplyAction="*"), ServiceKnownType(typeof(FilterType))]
        void SetRecordingJobMode(string JobToken, string Mode);
        [ServiceKnownType(typeof(FilterType)), XmlSerializerFormat, OperationContract(Action="http://www.onvif.org/ver10/recording/wsdl/SetTrackConfiguration", ReplyAction="*")]
        void SetTrackConfiguration(string RecordingToken, string TrackToken, TrackConfiguration TrackConfiguration);
    }
}

